1831D - The BOSS Can Count Pairs - CodeForces Solution


brute force data structures math

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#include<string>
#include<queue>
#include<set>
#include<vector>
#include<map>
#include<stack>
#define fi first
#define se second
#define ll long long
#define ull unsigned long long
using namespace std;
const int N=2e5+5;
const ll md=1e9+7;
const ll inf=1e18;
vector<ll>v[N*2];
ll a[N],b[N],n,f[N*2];
void solve(){
	//fuck
	cin>>n;
	for(int i=1;i<=2*n;i++){
		v[i].clear();		
	}
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=n;i++){
		cin>>b[i];
		v[a[i]].push_back(b[i]);
	}
	ll ans=0;
	for(int x=1;x*x<=2*n;x++){
		for(int now:v[x]){
			ans+=(x*x-now>0?f[x*x-now]:0ll);
			f[now]++;
		}
		for(int y=x+1;y*x<=2*n;y++){
			for(int now:v[y]){
				ans+=(y*x-now>0?f[x*y-now]:0ll);
			}
		}
		for(int now:v[x]){
			f[now]--;
		}
	}
	cout<<ans<<endl;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t=1;
	cin>>t;
	memset(f,0,sizeof(f));
	while(t--){
		solve();
	}
	
}


Comments

Submit
0 Comments
More Questions

1650C - Weight of the System of Nested Segments
1097A - Gennady and a Card Game
248A - Cupboards
1641A - Great Sequence
1537A - Arithmetic Array
1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks
472A - Design Tutorial Learn from Math
1368A - C+=
450A - Jzzhu and Children
546A - Soldier and Bananas